package com.xbai.file.controller;

import com.xbai.file.dto.FastDFSFile;
import com.xbai.file.util.FastDFSClient;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

/**
 * @author jxbai
 * @desc @CrossOrigin 支持跨域
 * 跨域:不同的域名A 访问 域名B 的数据就是跨域
 * 端口不同 也是跨域  localhost:18081----->localhost:18082
 * 协议不同 也是跨域  http://www.jd.com  --->  https://www.jd.com
 * 域名不同 也是跨域  http://www.jd.com  ---> http://www.taobao.com
 * 协议一致,端口一致,域名一致就不是跨域  http://www.jd.com:80 --->http://www.jd.com:80 不是跨域
 * @date 2021/1/27 0027
 */
@RestController
@CrossOrigin
public class FileController {

    @PostMapping("/upload")
    public String upload(@RequestParam(value = "file") MultipartFile file) {
        try {
            // 1. 创建图片文件对象（封装）
            FastDFSFile fastDFSFile = new FastDFSFile(file.getOriginalFilename(),
                    file.getBytes(),
                    StringUtils.getFilenameExtension(file.getOriginalFilename()));

            // 2. 调用工具类实现图片上传
            String[] upload = FastDFSClient.upload(fastDFSFile);
            //  upload[0] group1
            //  upload[1] M00/00/00/wKjThF1aW9CAOUJGAAClQrJOYvs424.jpg

            //3. 拼接图片的全路径返回
            // http://47.102.136.26:8080/group1/M00/00/00/wKjThF1aW9CAOUJGAAClQrJOYvs424.jpg
            assert upload != null;
            return FastDFSClient.getTrackerUrl()+"/"+upload[0]+"/"+upload[1];
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}
